/**
 * 二叉树类
 * 
 * @author 杨满球（本地）
 *
 */
public class BiTree {
	private BiTreeNode root;

	public BiTree() {
	}

	public BiTree(BiTreeNode root) {
		this.root = root;
	}

	public BiTreeNode getRoot() {
		return root;
	}

	public void setRoot(BiTreeNode root) {
		this.root = root;
	}

	/**
	 * 先根遍历
	 * 
	 * @param n
	 *            根节点
	 * @return 先根遍历树的字符串表示
	 */
	public String preRootTraverse(BiTreeNode n) {
		String str = "";
		if (n != null) {
			str += n.getData().toString();
			str += preRootTraverse(n.getLeftChild());
			str += preRootTraverse(n.getRightChild());
		}
		return str;
	}

	/**
	 * 中根遍历
	 * 
	 * @param n
	 *            根节点
	 * @return 中根遍历树的字符串表示
	 */
	public String inRootTraverse(BiTreeNode n) {
		String str = "";
		if (n != null) {
			str += inRootTraverse(n.getLeftChild());
			str += n.getData().toString();
			str += inRootTraverse(n.getRightChild());
		}
		return str;
	}

	/**
	 * 后根遍历
	 * 
	 * @param n
	 *            根节点
	 * @return 后根遍历树的字符串表示
	 */
	public String postRootTraverse(BiTreeNode n) {
		String str = "";
		if (n != null) {
			str += postRootTraverse(n.getLeftChild());
			str += postRootTraverse(n.getRightChild());
			str += n.getData().toString();
		}
		return str;
	}
}
